package 富婆梦.第一阶段.第六周.作业.俄罗斯转盘;

import java.util.LinkedList;

/**
 * @ProjectName: java-learning
 * @Package: 富婆梦.第一阶段.第五周.作业.俄罗斯转盘
 * @ClassName: Loop
 * @Author: hemengjin
 * @Description: 只包含一个静态方法，该方法用来更新玩家list，将死掉的玩家清理，并将活着的玩家重新排序
 * @Date:2021/8/22 16:24
 * @Version: 1.0
 */
public class Loop {
    //每次有人中枪将调整队列顺序来调整开枪顺序
    //传入参数为：当前玩家list，中枪者的位置；
    // 返回参数为：中枪者的所有人排前面的list
    public static LinkedList<Player> queue(LinkedList<Player> list, int index) {
        int size = list.size();
        //声明临时数组，用于存放排序后的list
        LinkedList<Player> temp = new LinkedList<>();
        //中枪者后面的人放list的前部
        for (int i = index + 1; i < size; i++) {
            temp.add(list.get(i));
        }
        //中枪者前面的人放list的后部
        for (int i = 0; i <= index; i++) {
            temp.add(list.get(i));
        }
        return temp;
    }

    public static void main(String[] args) {
        LinkedList<Player> list = new LinkedList<>();
        LinkedList<Player> temp = new LinkedList<>();
        list.add(new Player("小A"));
        list.add(new Player("小B"));
        list.add(new Player("小C"));
        list.add(new Player("小D"));
        for (Player p : list) {
            System.out.println(p.getName() + ":" + p.isLife());
        }
        temp = Loop.queue(list, 2);
        list = null;
        list=temp;
        System.out.println("排序后");
        for (Player p : list) {
            System.out.println(p.getName() + ":" + p.isLife());
        }
    }
}
